package com.pg.agent.engine.client.model;


/**
 * 提示模板常量类
 *
 * @author huhuaping
 * @date 2023/11/2 11:13
 */
public class PromptConstant {
    // SOP========================================================================================================
    // "environment_prompt"
    // current_state , self(sop)
    //以下是当前场景的描述
    public static final String GET_ENVIRONMENT_PROMPT = "这是对当前场景的描述：%s。\n";


    // sop.transit  "f\"{environment_prompt};\\n{judge_system_prompt}\\n\"";
//================================================================
    public static final String TRANSIT_SYSTEM_PROMPT = "%s；\n%s\n";

    //  transit chat message
    //  "environment_prompt" is get from "Get_environment_prompt" ; "chat_history_message" if from Memory
    //environment_summary chat_history_message query relevant_history
    //“\”%s这是聊天历史记录：\\n%s\\n这是最后一个您特别需要注意的查询：\n%s\n以下是相关对话：\n%s”
    public static final String TRANSIT_MESSAGE = "%s\n 这些是聊天历史记录\n%s"
            + "\n这是您特别需要注意的最后一个对话\n:%s"
            + "\n以下是相关的对话:\n%s";


    public static final String TRANSIT_LAST_PROMPT = "\"%s\"";
    //sop.transit================================================================

    // sop.call
//================================================================
    // help controller to determine the next role to speak.(the {} is agent role)    call_prompt + allocate_component
    //如果它当前应该为｛role｝说话，那么输出＜end＞｛rol｝</end＞
    public static final String ALLOCATE_COMPONENT = "他的主要任务是:%s，如果当前应该是%s说话，则输出<end>%s</end>。";

    // environment_prompt is get from "Get_environment_prompt" ; "chat_history_message" if from Memory
    //environment_prompt call_system_prompt allocate_prompt
    public static final String CALL_SYSTEM_PROMPT = "%s;\n%s;\n%s.";

    //“f\”这是您特别需要注意的最后一个查询：\\n｛query｝\\n以下是相关的对话：\\n｛relevant_history｝\\否，请根据以下规则选择发言人：｛allocate_prompt｝\\注意：现在轮到的人不能与上次发言的人相同，因此不能输出｛last_name｝\\n\“”
    public static final String CALL_LAST_PROMPT = "这是你特别需要注意的最后一次对话:%s;"
            + "\n 以下是相关对话 :%s;\n 现在请你根据以下规则选择对应的发言人:%s;"
            + "\n注意：现在轮到的人不能与上次发言的人相同，因此不能输出%s.";

    public static final String CALL_MESSAGE = "这些是聊天历史记录:%s;\n这个是最后说话的人:%s。";
    //sop.call================================================================
    // SOP========================================================================================================

    // Memory========================================================================================================
    public static final String SINGLE_MESSAGE = "姓名：%s，角色：%s，说话内容：%s。\n";

    public static final String CHAT_TOTAL_MESSAGE = "%s";
    // Memory========================================================================================================

    // Environment========================================================================================================
    public static final String DEFAULT_ENVIRONMENT_SUMMARY_SYSTEM_PROMPT = "\"您的任务是根据当前场景总结历史对话记录，并总结最重要的信息\"";

    public static final String DEFAULT_ENVIRONMENT_SUMMARY_LAST_PROMPT = "\"请根据历史聊天记录进行总结，输出格式为历史总结：\\｛您的总结内容\\｝\n";

    public static final String ENVIRONMENT_SUMMARY_MEMORY = "\"下面是你需要知道的信息：\n"
            + "这是之前聊天历史的总结：%s。\n"
            + "这是你可能需要知道的相关聊天记录：%s。\n"
            + "这是最新的谈话记录：%s。\n";

    public static final String ENVIRONMENT_SUMMARY_SYSTEM_PROMPT = "%s；\n%s；\n%s。\n";


    // observe
    public static final String AGENT_OBSERVE_RELEVANT_MEMORY = "%s";

    public static final String AGENT_OBSERVE_MEMORY = "下面是你需要知道的信息(记住，这只是信息，尽量不要重复回复里面的内容):"
            + "\n1、这是之前聊天历史摘要：\n%s"
            + "\n2、这是相关的历史对话：\n%s"
            + "\n3、这是最近聊天对话：\n%s"
            + "\n4、这是最新一条对话：\n%s\n";
    // Environment========================================================================================================


    // Agent========================================================================================================
    public static final String AGENT_SUMMARY_SYSTEM_PROMPT = "%s;\n这是过去的总结：%s;\n这是新的对话记录:\n%s;\n请根据以上信息进行总结;\n";
    public static final String AGENT_LAST_PROMPT = "%s;请根据你已知的信息，代表%s继续对话;请尽量使你的回答显得自然连贯，不要回复以前的话。";
    public static final String AGENT_SYSTEM_PROMPT = "%s";
    // Agent========================================================================================================

}
